package com.yunkeji.common.enums.app;

import com.yunkeji.common.exception.AppServiceException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Optional;

/**
 * 消息类型
 *
 * @author yunkeji
 */
@Getter
@AllArgsConstructor
public enum MsgTypeEnums {
    消息收条(100),
    弹窗消息(101),
    跑马灯消息(102),
    文字消息(200),
    链接消息(201),
    发起呼叫(300),
    被叫振铃(301),
    主叫确认(303),
    被叫接听(302),
    挂断通话(304);
    public Integer code;

    public static MsgTypeEnums getByCode(Integer code) {
        MsgTypeEnums[] values = MsgTypeEnums.values();
        Optional<MsgTypeEnums> first =
                Arrays.stream(values).filter(item -> item.getCode().equals(code)).findFirst();
        if (first.isPresent()) {
            return first.get();
        } else {
            throw AppServiceException.paramException("消息类型参数异常");
        }
    }
}
